---
title: "Dashboard"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
source: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
```
```{r}
library(tidyverse)
library(httr)
library(jsonlite)
library(plotly)
library(flexdashboard)
```
```{r}
library(p8105.datasets)
data("instacart")
```
```{r}
instacart_filtered <- instacart |>
mutate(department_id = as.integer(department_id)) |>
filter(
!is.na(department_id),
!department_id %in% c(17, 11, 18, 21)
) |>
sample_n(size = 10000)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
instacart_filtered |>
plot_ly(y = ~order_hour_of_day, color = ~department, type = "box", colors = "viridis") |>
layout(
title = "Distribution of Departments Shopped by Hour of Day",
yaxis = list(title = "Hour of Day"),
xaxis = list(title = "Department")
)
```
Column {data-width=350}
-----------------------------------------------------------------------
### Chart B
```{r}
instacart_filtered |>
count(aisle) |>
mutate(aisle = fct_reorder(aisle, n)) |>
plot_ly(x = ~aisle, y = ~n, color = ~aisle, type = "bar", colors = "viridis") |>
layout(title = "Order Counts by Aisle")
```
### Chart C
```{r}
instacart_filtered |>
mutate(text_label = str_c("Days Since Prior Order: ", days_since_prior_order,
"<br>Order Sequence Number: ", order_number,
"<br>Order Hour of Day: ", order_hour_of_day)) |>
plot_ly(
x = ~days_since_prior_order, y = ~order_number, type = "scatter", mode = "markers", color = ~order_hour_of_day, text = ~text_label, alpha = 0.5
) |>
layout(
title = "User Order Number by Number of Days Since Prior Instacart Order",
xaxis = list(title = "Days Since Prior Order"),
yaxis = list(title = "Order Sequence Number")
)
```